@echo off
chcp 65001 >nul
echo ======================================
echo 测试步骤7 - 费用清算提交（最后一步）
echo ======================================
echo.
echo 功能：
echo   在第七步（费用清算）点击提交后：
echo   1. ✅ 把当前待办任务的 is_handle 从 0 改成 1
echo   2. ✅ 生成一条新的审批记录（步骤7）
echo   3. ❌ 不生成新的待办任务（因为这是最后一步）
echo   4. ✅ 完成工作流任务
echo   5. ✅ 返回待办任务列表
echo.
echo ======================================
echo 修改文件列表：
echo ======================================
echo.
echo 前端文件：
echo   1. out_management.js
echo      - 添加 submitBillSettlement API
echo.
echo   2. bill-settlement/index.vue
echo      - 添加审批结果区域（审批通过/拒绝、审批意见）
echo      - 导入 submitBillSettlement API
echo      - 添加响应式数据：approvalResult, approvalComment
echo      - 修改 handleSubmit 方法调用新API
echo      - 添加审批结果CSS样式
echo.
echo 后端文件：
echo   3. ICheckOutManagementService.java
echo      - 添加 submitBillSettlement 方法接口
echo.
echo   4. CheckOutManagementServiceImpl.java
echo      - 实现 submitBillSettlement 方法
echo      - 完成工作流任务（步骤7）
echo      - 更新待办任务状态为已处理（is_handle=1）
echo      - 插入审批记录
echo      - ✅ 不创建新的待办任务（流程结束）
echo.
echo   5. CheckOutManagementController.java
echo      - 添加 /submitBillSettlement POST接口
echo.
echo ======================================
echo 前端修改详情：
echo ======================================
echo.
echo 文件：out_management.js
echo 位置：第90-97行
echo 代码：
echo   // 提交费用清算（第7步）
echo   export function submitBillSettlement(data) {
echo     return request({
echo       url: '/system/out_management/submitBillSettlement',
echo       method: 'post',
echo       data: data
echo     })
echo   }
echo.
echo 文件：bill-settlement/index.vue - Template
echo 位置：第145-166行
echo 代码：
echo   ^<div class="card"^>
echo     ^<div class="card-title"^>审批结果^</div^>
echo     ^<div class="result-group"^>
echo       ^<div class="label"^>^<span class="required"^>*^</span^>审批结果^</div^>
echo       ^<el-radio-group v-model="approvalResult"^>
echo         ^<el-radio label="pass"^>审批通过^</el-radio^>
echo         ^<el-radio label="reject"^>审批拒绝^</el-radio^>
echo       ^</el-radio-group^>
echo     ^</div^>
echo     ^<div class="result-group"^>
echo       ^<div class="label"^>^<span class="required"^>*^</span^>审批意见^</div^>
echo       ^<el-input v-model="approvalComment" type="textarea" /^>
echo     ^</div^>
echo   ^</div^>
echo.
echo 文件：bill-settlement/index.vue - Script
echo 位置：导入部分（第223行）
echo 代码：
echo   import { getContractByElderlyId, submitBillSettlement } from '@/api/system/out_management'
echo.
echo 位置：响应式数据（第267-269行）
echo 代码：
echo   // 审批相关
echo   const approvalResult = ref('pass') // 审批结果：pass=通过，reject=拒绝
echo   const approvalComment = ref('') // 审批意见
echo.
echo 位置：handleSubmit 方法（第452-506行）
echo 代码：
echo   const handleSubmit = async () =^> {
echo     // 验证审批意见
echo     if (!approvalComment.value.trim()) {
echo       ElMessage.warning('请填写审批意见！')
echo       return
echo     }
echo.
echo     const submitData = {
echo       businessId: route.query.id,
echo       taskId: route.query.taskId ^|^| '',
echo       ptId: route.query.ptid ^|^| '',
echo       opinion: approvalComment.value,
echo       auditStatus: approvalResult.value === 'pass' ? 1 : 2
echo     }
echo.
echo     const response = await submitBillSettlement(submitData)
echo     if (response.code === 200) {
echo       ElMessage.success('费用清算已提交！退住流程已完成！')
echo       setTimeout(() =^> { router.push('/xtgz/xtgz/tasks') }, 1000)
echo     }
echo   }
echo.
echo ======================================
echo 后端修改详情：
echo ======================================
echo.
echo 文件：ICheckOutManagementService.java
echo 位置：第101-111行
echo 代码：
echo   /**
echo    * 提交费用清算（步骤7）- 最后一步
echo    * @param businessId 业务ID
echo    * @param taskId 工作流任务ID
echo    * @param ptId 待办任务ID
echo    * @param opinion 审批意见
echo    * @param auditStatus 审核状态（1=通过，2=拒绝）
echo    * @return 结果
echo    */
echo   public int submitBillSettlement(Long businessId, String taskId, 
echo                                    Long ptId, String opinion, Integer auditStatus);
echo.
echo 文件：CheckOutManagementServiceImpl.java
echo 位置：第769-848行
echo 关键逻辑：
echo   1. 查询退住申请信息
echo   2. ✅ 完成工作流任务（taskService.complete(taskId)）
echo   3. ✅ 更新待办任务状态（is_handle=1, finishTime）
echo   4. ✅ 插入审批记录（使用 accraditationRecordMapper.insertAccraditationRecord）
echo      - type=1 （退住申请）
echo      - stepNo=7
echo      - currentStep="费用清算"
echo      - nextStep=null （流程结束）
echo      - nextApprover=null （没有下一个审批人）
echo   5. ✅ 不创建新的待办任务（因为是最后一步）
echo.
echo 文件：CheckOutManagementController.java
echo 位置：第400-452行
echo 接口：POST /system/out_management/submitBillSettlement
echo 参数：
echo   - businessId: 业务ID
echo   - taskId: 工作流任务ID
echo   - ptId: 待办任务ID
echo   - opinion: 审批意见
echo   - auditStatus: 审核状态（1=通过，2=拒绝）
echo.
echo ======================================
echo 完整的退住申请工作流（7步）：
echo ======================================
echo.
echo 步骤1：申请退住
echo   - 创建退住申请
echo   - 生成待办任务（步骤2，is_handle=0）
echo.
echo 步骤2：申请审批
echo   - 提交后：当前待办（步骤2）is_handle=1
echo   - 生成新待办（步骤3，is_handle=0）
echo   - 生成审批记录（步骤2）
echo.
echo 步骤3：解除合同
echo   - 提交后：当前待办（步骤3）is_handle=1
echo   - 生成新待办（步骤4，is_handle=0）
echo   - 生成审批记录（步骤3）
echo   - 更新合同状态
echo.
echo 步骤4：调整账单
echo   - 提交后：当前待办（步骤4）is_handle=1
echo   - 生成新待办（步骤5，is_handle=0）
echo   - 生成审批记录（步骤4）
echo.
echo 步骤5：账单审批
echo   - 提交后：当前待办（步骤5）is_handle=1
echo   - 生成新待办（步骤6，is_handle=0）
echo   - 生成审批记录（步骤5）
echo.
echo 步骤6：副院长审批退住
echo   - 提交后：当前待办（步骤6）is_handle=1
echo   - 生成新待办（步骤7，is_handle=0）
echo   - 生成审批记录（步骤6）
echo.
echo 步骤7：费用清算（最后一步）✅
echo   - 提交后：当前待办（步骤7）is_handle=1
echo   - ❌ 不生成新的待办任务（流程结束）
echo   - ✅ 生成审批记录（步骤7）
echo   - ✅ 完成工作流任务
echo   - ✅ 返回待办任务列表
echo.
echo ======================================
echo 测试步骤：
echo ======================================
echo.
echo 步骤1：访问待办任务列表
echo   http://localhost/xtgz/xtgz/tasks
echo.
echo 步骤2：找到步骤7的任务
echo   - 业务ID：104
echo   - 标题：何老三-费用清算
echo   - 步骤：7
echo   - 是否处理完成：0
echo.
echo 步骤3：点击"处理"按钮
echo   跳转到：/splccs/zdtzhtk?id=104^&taskId=xxx^&ptid=583^&step=7^&type=1
echo.
echo 步骤4：在费用清算页面查看
echo   - 应该显示基本信息、申请信息、解除记录
echo   - 应该显示审批结果区域（审批通过/拒绝、审批意见）
echo   - 应该显示操作记录
echo.
echo 步骤5：填写审批信息
echo   - 选择"审批通过"或"审批拒绝"
echo   - 填写审批意见（必填）
echo.
echo 步骤6：点击"提交"按钮
echo.
echo 步骤7：验证前端控制台
echo   应该看到：
echo   === 费用清算提交 ===
echo   提交数据: {businessId: 104, taskId: xxx, ptId: 583, ...}
echo   业务ID: 104
echo   审批结果: pass
echo   审批意见: 同意费用清算
echo.
echo 步骤8：验证后端控制台
echo   应该看到：
echo   === Controller：费用清算提交开始（步骤7）===
echo   === Service层：提交费用清算（步骤7 - 最后一步）===
echo   ✅ 完成工作流任务（步骤7）
echo   ✅ 更新步骤7待办任务状态为已处理
echo   ✅ 保存审批记录（步骤7）- 流程结束
echo   ✅ 步骤7是最后一步，不创建新的待办任务
echo   ✅ 退住流程已完成！
echo   === Controller：费用清算提交完成 ===
echo.
echo 步骤9：验证数据库
echo.
echo   -- 验证待办任务状态已更新
echo   SELECT id, step_no, is_handle, finish_time
echo   FROM pending_tasks 
echo   WHERE id = 583;
echo   -- 结果应该是：is_handle=1，finish_time有值
echo.
echo   -- 验证审批记录已生成
echo   SELECT id, step_no, current_step, next_step, 
echo          next_approver, audit_status, opinion
echo   FROM accraditation_record 
echo   WHERE bussniess_id = 104 AND step_no = 7;
echo   -- 结果应该是：
echo   -- step_no=7
echo   -- current_step='费用清算'
echo   -- next_step=NULL
echo   -- next_approver=NULL
echo   -- audit_status=1（通过）或2（拒绝）
echo.
echo   -- 验证没有新的待办任务生成
echo   SELECT COUNT(*) as count
echo   FROM pending_tasks 
echo   WHERE bussniess_id = 104 AND step_no = 8;
echo   -- 结果应该是：count=0
echo.
echo   -- 查看所有待办任务
echo   SELECT id, step_no, is_handle, title, task_id
echo   FROM pending_tasks 
echo   WHERE bussniess_id = 104
echo   ORDER BY step_no;
echo   -- 应该看到：步骤1-7都有记录，步骤7的is_handle=1
echo.
echo   -- 查看所有审批记录
echo   SELECT id, step_no, current_step, next_step, audit_status
echo   FROM accraditation_record 
echo   WHERE bussniess_id = 104
echo   ORDER BY step_no;
echo   -- 应该看到：步骤2-7都有记录
echo.
echo 步骤10：验证页面跳转
echo   提交成功后1秒，应该自动跳转到待办任务列表
echo   http://localhost/xtgz/xtgz/tasks
echo.
echo ======================================
echo 关键差异：步骤7 vs 前面步骤
echo ======================================
echo.
echo 前面步骤（2-6）：
echo   ✅ 完成工作流任务
echo   ✅ 更新当前待办任务状态（is_handle=1）
echo   ✅ 生成审批记录
echo   ✅ 创建下一步待办任务（is_handle=0）
echo.
echo 步骤7（最后一步）：
echo   ✅ 完成工作流任务
echo   ✅ 更新当前待办任务状态（is_handle=1）
echo   ✅ 生成审批记录
echo   ❌ 不创建下一步待办任务（流程结束）
echo.
echo 审批记录的差异：
echo   前面步骤：nextStep 和 nextApprover 有值
echo   步骤7：nextStep=null, nextApprover=null
echo.
echo ======================================
echo 预期结果：
echo ======================================
echo.
echo ✅ 前端：
echo   - 页面显示审批结果区域
echo   - 填写审批意见并提交成功
echo   - 显示"费用清算已提交！退住流程已完成！"
echo   - 自动跳转到待办任务列表
echo.
echo ✅ 后端：
echo   - 工作流任务完成
echo   - 待办任务状态更新为已处理（is_handle=1）
echo   - 生成审批记录（步骤7，nextStep=null）
echo   - 不创建新的待办任务
echo   - 退住流程完成
echo.
echo ✅ 数据库：
echo   - pending_tasks: 步骤7的 is_handle=1
echo   - accraditation_record: 有步骤7的记录
echo   - 没有步骤8的待办任务
echo.
echo 整个退住申请工作流（从申请到清算）已全部完成！🎉
echo.
pause

